package com.weed.jdbc;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

/**
 * 函数说明：
 *    实现对类名的缓存。
 * @author Jason zhuo
 * @version 1.0
 */
public class ColumnNameCache {

  private final Map columnNameToIndexCache;

  public ColumnNameCache(int columnCount) {
    // should *not* need to grow beyond the size of the total number of columns in the rs
    this.columnNameToIndexCache = new HashMap(columnCount);
  }

  public int getIndexForColumnName(String columnName, ResultSetWrapper rs) throws
      SQLException {
    Integer cached = (Integer) columnNameToIndexCache.get(columnName);
    if (cached != null) {
      return cached.intValue();
    }
    else {
      int index = rs.getTarget().findColumn(columnName);
      columnNameToIndexCache.put(columnName, new Integer(index));
      return index;
    }
  }

}
